<?php
class FluxoSelecao implements InterfaceFluxo
{
    public static function getAlertsStatus($pfcid)
    {
        switch ($pfcid) {
            case PerfilComportamental::Gabinete:
                return array(
                        Status::Candidato_Informado, 
                        Status::Candidato_NaoComparecimentoConfirmado);
                break;
                
            case PerfilComportamental::NucleoGestor:
                return array(
                        Status::Candidato_Aprovado,
                        Status::Candidato_NaoCompareceu, 
                        Status::Candidato_Selecionado);
                break;
                
            case PerfilComportamental::Empresa:
                return array(Status::Candidato_Selecionado);
                break;
        }
    }
    
    public static function loadAlertsData($pfcid) 
    {
        $status = self::getAlertsStatus($pfcid);
        if ($status) {
            global $usuario;
            
            $status = TUtils::ArrayToSql($status);
            $view = new ViewProcessoSelecao();
            $where = '(statusid IN (' . $status . ')';
            
            if ($pfcid == PerfilComportamental::Empresa OR $pfcid == PerfilComportamental::Gabinete) {
                $where .= ' OR statusid IS NULL)';
            }
            else {
                $where .= ')';
            }
            
            if ($pfcid == PerfilComportamental::NucleoGestor) {
                $where .= ' AND nucleogestorid = ' . $usuario->nucleogestorid;    
            } 
            else {
                $contratoids = $usuario->listarContratosSQL();
                $where .= ' AND contratoid in (' . $contratoids . ')';
            }
            
            $result = $view->listar(array(
            	'precondicao'=>$where, 
            	'orderBy'=>'dataregistro', 
            	'order'=>'desc'));
            
            if (pg_num_rows($result)>0) {
                return pg_fetch_all($result);
            }
        }
    } 
}